package algorithm.sort;


        import algorithm.sort.common.SortTestHelper;

public class BubbleSort {

    public static void main(String[] args) {
        for(int m=0;m<1;m++){
            //Integer[] arr = SortTestHelper.generateRandomArray(1000,0,10000);
            Integer[] arr = new Integer[]{4,9,10,3,5};
            System.out.println("------第"+(m+1)+"次数--------");

            //BubbleSort.printArr(arr);
            System.out.println(SortTestHelper.isSorted(arr));

            BubbleSort.insertSort(arr);

          //  BubbleSort.printArr(arr);
            System.out.println(SortTestHelper.isSorted(arr));
        }



    }

    /**
     *
     *   冒泡排序
     *
     * **/
    public static  void bubleSort(Integer[] arr){
        for(int i=0;i<arr.length-1;i++){
            for(int j=i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }

            }
           // printArr(arr);

        }

    }

    /**
     *   选择排序
     *
     * */

    public static void selectSort(Integer[] arr){

        for(int i=0;i<arr.length-1;i++){
            int k = arr[i];
            for(int j=i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){
                    arr[i] = arr[j];
                    arr[j] = k;
                }
            }
        }

    }

    public static void selectSort2(Integer[] arr){
        for(int i=0;i<arr.length-1;i++){
            int minIndex = i;
            for(int j=i+1;j<arr.length;j++){
                if(arr[minIndex]>arr[j]){
                    minIndex=j;
                }
            }
            if(minIndex!=i) {
                int temp = arr[i];
                arr[i] = arr[minIndex];
                arr[minIndex] = temp;
            }
        }
    }
/**
 * 插入排序
 *
 * */
    public static void insertSort(Integer[] arr){
        for(int i=1;i<arr.length;i++){
            for(int j = i;j>0;j--){
                if(arr[j]<arr[j-1]){
                    int temp = arr[j-1];
                    arr[j-1] = arr[j];
                    arr[j] = temp;
                }else {
                    break;
                }
            }
            printArr(arr);
        }
    }



    public static void printArr(Integer[] arr){

        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+",");
        }
        System.out.println();

    }

}
